home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / include / Xm / ToggleBGP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-30  |  5.9 KB  |  208 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC. 
  3.  * ALL RIGHTS RESERVED 
  4. */ 
  5. /* 
  6.  * Motif Release 1.2.1
  7. */ 
  8. /*   $RCSfile: ToggleBGP.h,v $ $Revision: 10.1 $ $Date: 1994/02/03 15:53:39 $ */
  9. /*
  10. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  11. /*
  12. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  13. /********************************************
  14.  *
  15.  *   No new fields need to be defined
  16.  *   for the Toggle widget class record
  17.  *
  18.  ********************************************/
  19.  
  20. #ifndef _XmToggleButtonGP_h
  21. #define _XmToggleButtonGP_h
  22.  
  23. #include <Xm/ToggleBG.h>
  24. #include <Xm/LabelGP.h>
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. /*************************************************************/
  31. /* The  ToggleButton Gadget Cache Object's class and instance records*/
  32. /*************************************************************/
  33.  
  34.  
  35. typedef struct _XmToggleButtonGCacheObjClassPart
  36. {
  37.     int foo;
  38. } XmToggleButtonGCacheObjClassPart;
  39.  
  40.  
  41. typedef struct _XmToggleButtonGCacheObjClassRec 
  42. {
  43.     ObjectClassPart                     object_class;
  44.         XmExtClassPart                      ext_class;
  45.     XmLabelGCacheObjClassPart           label_class_cache;
  46.     XmToggleButtonGCacheObjClassPart    toggle_class_cache;
  47. } XmToggleButtonGCacheObjClassRec;
  48.  
  49. externalref XmToggleButtonGCacheObjClassRec xmToggleButtonGCacheObjClassRec;
  50.  
  51.  
  52. typedef struct _XmToggleButtonGCacheObjPart
  53.    unsigned char    ind_type;
  54.    Boolean        visible;
  55.    Dimension        spacing;
  56.    Dimension        indicator_dim;
  57.    Pixmap        on_pixmap; 
  58.    Pixmap        insen_pixmap; 
  59.    Boolean        ind_on;
  60.    Boolean        fill_on_select;
  61.    Pixel        select_color;
  62.    GC            select_GC;
  63.    GC            background_gc;
  64. } XmToggleButtonGCacheObjPart;
  65.  
  66. typedef struct _XmToggleButtonGCacheObjRec
  67. {
  68.     ObjectPart                              object;
  69.     XmExtPart                            ext;
  70.     XmLabelGCacheObjPart                 label_cache;
  71.     XmToggleButtonGCacheObjPart             toggle_cache;
  72. } XmToggleButtonGCacheObjRec;
  73.  
  74.  
  75. /****************************************************
  76.  *
  77.  * Full class record declaration for Toggle class
  78.  *
  79.  ****************************************************/
  80.  
  81. typedef struct _XmToggleButtonGadgetClassPart
  82.  {
  83.    XtPointer                   extension;
  84.  } XmToggleButtonGadgetClassPart;
  85.  
  86.  
  87. typedef struct _XmToggleButtonGadgetClassRec {
  88.     RectObjClassPart                 rect_class;
  89.     XmGadgetClassPart              gadget_class;
  90.     XmLabelGadgetClassPart             label_class;
  91.     XmToggleButtonGadgetClassPart    toggle_class;
  92. } XmToggleButtonGadgetClassRec;
  93.  
  94.  
  95. externalref XmToggleButtonGadgetClassRec xmToggleButtonGadgetClassRec;
  96.  
  97.  
  98. typedef struct _XmToggleButtonGadgetPart
  99.    Boolean        indicator_set;
  100.    Boolean        set;
  101.    Boolean          visual_set; /* used for visuals and does not reflect
  102.                                        the true state of the button */
  103.    Boolean             Armed;
  104.    XtCallbackList       value_changed_CB,
  105.             arm_CB,
  106.                 disarm_CB;
  107.  
  108.    XmToggleButtonGCacheObjPart  *cache; /* Replace cache instance fields */
  109.                     /* with a pointer */
  110. } XmToggleButtonGadgetPart;
  111.  
  112.  
  113.  
  114. /****************************************************************
  115.  *
  116.  * Full instance record declaration
  117.  *
  118.  ****************************************************************/
  119.  
  120. typedef struct _XmToggleButtonGadgetRec {
  121.     ObjectPart            object;
  122.     RectObjPart            rectangle;
  123.     XmGadgetPart        gadget;
  124.     XmLabelGadgetPart        label;
  125.     XmToggleButtonGadgetPart    toggle;
  126. } XmToggleButtonGadgetRec;
  127.  
  128.  
  129. /* MACROS */
  130. /**********/
  131.  
  132. /* Macros for cached instance fields */
  133.  
  134. #define TBG_IndType(w)        (((XmToggleButtonGadget) (w)) -> \
  135.                    toggle.cache->ind_type)
  136. #define TBG_Visible(w)        (((XmToggleButtonGadget) (w)) -> \
  137.                    toggle.cache->visible)
  138. #define TBG_Spacing(w)        (((XmToggleButtonGadget) (w)) -> \
  139.                    toggle.cache->spacing)
  140. #define TBG_IndicatorDim(w)    (((XmToggleButtonGadget) (w)) -> \
  141.                    toggle.cache->indicator_dim)
  142. #define TBG_OnPixmap(w)        (((XmToggleButtonGadget) (w)) -> \
  143.                    toggle.cache->on_pixmap)
  144. #define TBG_InsenPixmap(w)    (((XmToggleButtonGadget) (w)) -> \
  145.                    toggle.cache->insen_pixmap)
  146. #define TBG_IndOn(w)        (((XmToggleButtonGadget) (w)) -> \
  147.                    toggle.cache->ind_on)
  148. #define TBG_FillOnSelect(w)    (((XmToggleButtonGadget) (w)) -> \
  149.                    toggle.cache->fill_on_select)
  150. #define TBG_SelectColor(w)    (((XmToggleButtonGadget) (w)) -> \
  151.                    toggle.cache->select_color)
  152. #define TBG_SelectGC(w)        (((XmToggleButtonGadget) (w)) -> \
  153.                    toggle.cache->select_GC)
  154. #define TBG_BackgroundGC(w)    (((XmToggleButtonGadget) (w)) -> \
  155.                    toggle.cache->background_gc)
  156.  
  157. /***************************************/
  158. /* Macros for uncached instance fields */
  159.  
  160. #define TBG_IndicatorSet(w)    (((XmToggleButtonGadget) (w)) -> \
  161.                    toggle.indicator_set)
  162. #define TBG_Set(w)        (((XmToggleButtonGadget) (w)) -> \
  163.                            toggle.set)
  164. #define TBG_VisualSet(w)    (((XmToggleButtonGadget) (w)) -> \
  165.                    toggle.visual_set)
  166. #define TBG_ValueChangedCB(w)    (((XmToggleButtonGadget) (w)) -> \
  167.                    toggle.value_changed_CB)
  168. #define TBG_ArmCB(w)        (((XmToggleButtonGadget) (w)) -> \
  169.                    toggle.arm_CB)
  170. #define TBG_DisarmCB(w)        (((XmToggleButtonGadget) (w)) -> \
  171.                    toggle.disarm_CB)
  172. #define TBG_Armed(w)        (((XmToggleButtonGadget) (w)) -> \
  173.                    toggle.Armed)
  174.  
  175. /******************************/
  176. /* Convenience Macros         */
  177. /******************************/
  178.  
  179. #define TBG_Cache(w)                    (((XmToggleButtonGadget)(w))->\
  180.                        toggle.cache)
  181. #define TBG_ClassCachePart(w) \
  182.         (((XmToggleButtonGadgetClass)xmToggleButtonGadgetClass)->gadget_class.cache_part)
  183.  
  184.  
  185. /********    Private Function Declarations    ********/
  186. #ifdef _NO_PROTO
  187.  
  188. extern int _XmToggleBCacheCompare() ;
  189.  
  190. #else
  191.  
  192. extern int _XmToggleBCacheCompare( 
  193.                         XtPointer A,
  194.                         XtPointer B) ;
  195.  
  196. #endif /* _NO_PROTO */
  197. /********    End Private Function Declarations    ********/
  198.  
  199.  
  200. #ifdef __cplusplus
  201. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  202. #endif
  203.  
  204. #endif /* _XmToggleButtonGP_h */
  205. /* DON'T ADD ANYTHING AFTER THIS #endif */
  206.